import axios from 'axios';

// 创建 axios 实例
const service = axios.create({
    // 使用代理路径，Vite 会将 /api 开头的请求代理到目标服务器
    baseURL: '/api', 
    timeout: 5000 // 请求超时时间
});

// 不需要token的白名单路径
const whiteList = [
    '/login',
    '/register',
    // 可以根据需要添加其他不需要token的接口路径
];

// 请求拦截器
service.interceptors.request.use(
    config => {
        // 检查当前请求路径是否在白名单中
        const url = config.url;
        const isWhitelisted = whiteList.some(path => url.includes(path));
        
        // 只有当请求路径不在白名单中时，才添加token
        if (!isWhitelisted) {
            const token = localStorage.getItem('token');
            if (token) {
                // 直接将 token 作为请求头的值
                config.headers['token'] = token;
            }
        }
        return config;
    },
    error => {
        // 处理请求错误
        console.error('请求错误:', error);
        return Promise.reject(error);
    }
);

// 响应拦截器
service.interceptors.response.use(
    response => {
        // 对响应数据做点什么
        return response.data;
    },
    error => {
        // 处理响应错误
        console.error('响应错误:', error);
        return Promise.reject(error);
    }
);

export default service;